package com.ruoyi.entity.po;

import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serial;
import java.io.Serializable;

/**
 * @author chenhainan
 * @since 2024-12-08 17:19
 */
/**
 * 选手
 */
@Setter
@Getter
public class TPlayer extends BaseEntity implements Serializable {

    private Integer id;

    /**
    * 选手名
    */
    @NotNull
    @NotBlank(message = "姓名不能为空")
    private String name;

    /**
    * 手机号码
    */
    @NotBlank(message = "手机号码不能为空")
    private String phoneNum;

    /**
    * 微信 id
    */
    @NotBlank(message = "微信 id不能为空")
    private String wechatId;

    /**
    * 绑定设备 id
    */
    @NotBlank(message = "绑定设备 id不能为空")
    private String deviceId;

    /**
    * 选手状态 1 存活 2 
    */
    private Integer status;

    /**
    * 粉丝数量
    */
    private Integer fansCount;

    /**
    * 自定义值
    */
    private String customizeValue;

    /**
    * 热力值
    */
    private Double thermalValue;

    /**
    * 淘汰值
    */
    private Double expireValue;

    /**
    * 点赞数
    */
    private Integer likeCount;

    /**
    * 倒赞数
    */
    private Integer dislikeCount;

    /**
    * 评论数
    */
    private Integer commentsCount;

    /**
    * 动态点赞数数
    */
    private Integer tweetsLikeCount;

    /**
    * 动态评论数
    */
    private Integer tweetsCommentsCount;

    /**
    * 聊天提及数
    */
    private Integer chatContainsCount;

    /**
    * 人气值
    */
    private Double popularityValue;

    /**
    * 关注时间
    */
    private Double focusTime;

    @Serial
    private static final long serialVersionUID = 1L;

    @Override
    public String toString() {
        return getClass().getSimpleName() +
                " [" +
                "Hash = " + hashCode() +
                ", id=" + id +
                ", name=" + name +
                ", phoneNum=" + phoneNum +
                ", wechatId=" + wechatId +
                ", deviceId=" + deviceId +
                ", status=" + status +
                ", fansCount=" + fansCount +
                ", customizeValue=" + customizeValue +
                ", thermalValue=" + thermalValue +
                ", expireValue=" + expireValue +
                ", likeCount=" + likeCount +
                ", dislikeCount=" + dislikeCount +
                ", commentsCount=" + commentsCount +
                ", tweetsLikeCount=" + tweetsLikeCount +
                ", tweetsCommentsCount=" + tweetsCommentsCount +
                ", chatContainsCount=" + chatContainsCount +
                ", popularityValue=" + popularityValue +
                ", focusTime=" + focusTime +
                "]";
    }
}